package com.qidianit.mes.pro.mapper;

import com.qidianit.mes.pojo.pro.ProductionOrder;
import com.qidianit.mes.pro.vo.ProductionOrderMaterialWithUnit;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.ArrayList;

/**
 * @Description:
 * @Author: shanzhe
 * @Date: 2025/9/19 - 20:00
 */
@Mapper
public interface ProductionOrderMapper {
    /*
    多条件分页查询工单列表
     */
    ArrayList<ProductionOrderMaterialWithUnit> queryProductionOrderListWithMultiConditionsAndPage(@Param("pageNum") Integer pageNum,
                                                                  @Param("pageSize") Integer pageSize,
                                                                  @Param("productionOrderCode") String productionOrderCode,
                                                                  @Param("productionOrderName") String productionOrderName,
                                                                  @Param("productionOrderSource") Integer productionOrderSource,
                                                                  @Param("materialCode") String materialCode,
                                                                  @Param("materialName") String materialName,
                                                                  @Param("customerCode") String customerCode,
                                                                  @Param("productionOrderType") Integer productionOrderType,
                                                                  @Param("requestDate") String requestDate,
                                                                  @Param("status") Integer status);
    /*
    新增生产工单
     */
    int addProduction(ProductionOrder productionOrder);
    /*
    根据code查找
     */
    ProductionOrder queryProductionOrderByCode(@Param("productionOrderCode") String productionOrderCode);

    ArrayList<ProductionOrder> queryProductionOrderAll();
    /*
    更新工单
     */
    int updateProductionOrder(ProductionOrder productionOrder);

    /*
    删除工单
     */
    int deleteProductionOrderById(@Param("id") Long id);
}
